home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio
/
Ham Radio CD-ROM (Emerald Software) (1995).ISO
/
ant
/
antenna2
/
stubmatc.bas
< prev
next >
Wrap
BASIC Source File
|
1986-08-10
|
2KB
|
58 lines
10 CLS
20 REM 05/15/86
30 T$="SINGLE STUB MATCHING":L=1:GOSUB 130
40 T$="(SHORT CIRCUIT STUB)":L=2:GOSUB 130
50 REM AHMAD FAIZAL MOHD. ZAIN
60 PRINT:PRINT:PRINT
70 :
80 DEF FN MAG(X,Y)=SQR(X*X+Y*Y)
90 DEF FN ANG(X,Y)=ATN(Y/X)
100 PI=3.141592
110 GOTO 150
120 :
130 LOCATE L,(80-LEN(T$))/2+1:PRINT T$:RETURN
140 :
150 INPUT"ENTER WORKING FREQUENCY (MHz)";FREQ
160 INPUT"ENTER CHARACTERISTIC IMPEDANCE";Z0
170 INPUT"ENTER REAL PART OF LOAD IMPEDANCE";RL
180 INPUT"ENTER IMAG PART OF LOAD IMPEDANCE";XL
190 PRINT:PRINT
200 :
210 LAMBDA=300/FREQ
220 BETA=2*PI/LAMBDA
230 :
240 RL=RL/Z0:XL=XL/Z0 'NORMALISING
250 IF XL<0 THEN SIGN$=" -j" ELSE SIGN$=" +j"
260 PRINT USING"LOAD IMPEDANCE = ###.##";RL*Z0;:PRINT SIGN$;:PRINT USING "###.##";ABS(XL*Z0)
270 PRINT:PRINT
280 :
290 IF RL=1 THEN T=-XL/2:DISTANCE=(ATN(T)+PI)/(2*PI):GOTO 490
300 A=SQR(RL*((1-RL)^2+XL^2))
310 T1=(-XL+A)/(1-RL): T2=(-XL-A)/(1-RL)
320 IF T1>=0 THEN DISTANCE1=(ATN(T1))/(2*PI) ELSE DISTANCE1=(ATN(T1)+PI)/(2*PI)
330 IF T2>=0 THEN DISTANCE2=(ATN(T2))/(2*PI) ELSE DISTANCE2=(ATN(T2)+PI)/(2*PI)
340 D1=DISTANCE1*LAMBDA:D2=DISTANCE2*LAMBDA
350 :
360 B1=(RL*RL*T1-(1-XL*T1)*(XL+T1))/(RL*RL+(XL+T1)^2)
370 IF B1>=0 THEN LENGTH1=(ATN(1/B1))/(2*PI) ELSE LENGTH1=(PI+ATN(1/B1))/(2*PI)
380 B2=-B1:REM B2=(RL*RL*T2-(1-XL*T2)*(XL+T2))/(RL*RL+(XL+T2)^2)
390 IF B2>=0 THEN LENGTH2=(ATN(1/B2))/(2*PI) ELSE LENGTH2=(PI+ATN(1/B2))/(2*PI)
400 :
410 S1=LENGTH1*LAMBDA:S2=LENGTH2*LAMBDA
420 PRINT USING "FOR STUB LENGTH OF ##.###";S1;:PRINT USING ", DISTANCE FROM LOAD IS ##.###";D1;:PRINT" meters"
430 PRINT USING "STUB REACTANCE IS ####.##";B1*Z0
440 PRINT:PRINT
450 PRINT USING "FOR STUB LENGTH OF ##.###";S2;:PRINT USING ", DISTANCE FROM LOAD IS ##.###";D2;:PRINT" meters"
460 PRINT USING "STUB REACTANCE IS ####.##";B2*Z0
470 GOTO 530
480 :
490 B=(RL*RL*T-(1-XL*T)*(XL+T))/(RL*RL+(XL+T)*(XL+T))
500 IF B>=0 THEN LENGTH=(ATN(1/B))/(2*PI) ELSE LENGTH=(PI+ATN(1/B))/(2*PI)
510 PRINT USING "FOR STUB LENGTH OF ##.###";LENGTH;:PRINT USING ", DISTANCE FROM LOAD IS ##.###";DISTANCE;:PRINT" meters"
520 PRINT USING "STUB IMPEDANCE IS ####.##";B*Z0
530 T$="DO YOU WANT TO RUN THIS PROGRAM AGAIN (Y/N)? ":L=23:GOSUB 130
540 AN$=INKEY$
550 IF AN$="Y" OR AN$="y" THEN RUN
560 IF AN$="N" OR AN$="n" THEN END
570 GOTO 530